@@ -25,6 +25,7 @@  | 
            ||
| 25 | 25 | 
                <application  | 
            
| 26 | 26 | 
                android:name=".app.PaiAiApplication"  | 
            
| 27 | 27 | 
                android:icon="@mipmap/ic_launcher"  | 
            
| 28 | 
                + android:hardwareAccelerated="true"  | 
            |
| 28 | 29 | 
                android:label="@string/app_name"  | 
            
| 29 | 30 | 
                android:largeHeap="true"  | 
            
| 30 | 31 | 
                android:theme="@style/AppTheme.NoActionBar">  | 
            
                @@ -86,6 +87,7 @@  | 
            ||
| 86 | 87 | 
                android:name=".activity.FeedbackActivity"  | 
            
| 87 | 88 | 
                android:configChanges="keyboardHidden|orientation|screenSize"  | 
            
| 88 | 89 | 
                android:label="@string/app_name"  | 
            
| 90 | 
                + android:theme="@style/AppThemeTranslucent"  | 
            |
| 89 | 91 | 
                android:screenOrientation="portrait" />  | 
            
| 90 | 92 | 
                 | 
            
| 91 | 93 | 
                <activity  | 
            
                @@ -135,6 +137,7 @@  | 
            ||
| 135 | 137 | 
                android:name=".activity.PhotoDetailsActivity"  | 
            
| 136 | 138 | 
                android:configChanges="keyboardHidden|orientation|screenSize"  | 
            
| 137 | 139 | 
                android:label="@string/app_name"  | 
            
| 140 | 
                + android:theme="@style/AppThemeTranslucent"  | 
            |
| 138 | 141 | 
                android:screenOrientation="portrait" />  | 
            
| 139 | 142 | 
                 | 
            
| 140 | 143 | 
                <activity  | 
            
                @@ -179,9 +182,6 @@  | 
            ||
| 179 | 182 | 
                android:label="@string/app_name"  | 
            
| 180 | 183 | 
                android:screenOrientation="portrait" />  | 
            
| 181 | 184 | 
                 | 
            
| 182 | 
                - <activity android:name=".activity.TipsActivity"  | 
            |
| 183 | 
                - android:theme="@style/ThemeTips"/>  | 
            |
| 184 | 
                -  | 
            |
| 185 | 185 | 
                <activity  | 
            
| 186 | 186 | 
                android:name=".wxapi.WXEntryActivity"  | 
            
| 187 | 187 | 
                android:configChanges="keyboardHidden|orientation|screenSize"  | 
            
                @@ -1,60 +0,0 @@  | 
            ||
| 1 | 
                -package ai.pai.client.activity;  | 
            |
| 2 | 
                -  | 
            |
| 3 | 
                -  | 
            |
| 4 | 
                -import android.app.Activity;  | 
            |
| 5 | 
                -import android.content.Intent;  | 
            |
| 6 | 
                -import android.os.Bundle;  | 
            |
| 7 | 
                -import android.view.KeyEvent;  | 
            |
| 8 | 
                -import android.view.View;  | 
            |
| 9 | 
                -import android.view.ViewGroup;  | 
            |
| 10 | 
                -import android.view.Window;  | 
            |
| 11 | 
                -import android.widget.RelativeLayout;  | 
            |
| 12 | 
                -  | 
            |
| 13 | 
                -import ai.pai.client.R;  | 
            |
| 14 | 
                -import ai.pai.client.views.TipsView;  | 
            |
| 15 | 
                -  | 
            |
| 16 | 
                -public class TipsActivity extends Activity {
               | 
            |
| 17 | 
                -  | 
            |
| 18 | 
                - private int[] mLocs;  | 
            |
| 19 | 
                -  | 
            |
| 20 | 
                - RelativeLayout mRlRootView;  | 
            |
| 21 | 
                -  | 
            |
| 22 | 
                - @Override  | 
            |
| 23 | 
                -    protected void onCreate(Bundle savedInstanceState) {
               | 
            |
| 24 | 
                - super.onCreate(savedInstanceState);  | 
            |
| 25 | 
                - requestWindowFeature(Window.FEATURE_NO_TITLE);//取消title  | 
            |
| 26 | 
                - setContentView(R.layout.activity_tips);  | 
            |
| 27 | 
                - Intent intent = getIntent();  | 
            |
| 28 | 
                -        mLocs = intent.getIntArrayExtra("loc");
               | 
            |
| 29 | 
                - mRlRootView = (RelativeLayout)findViewById(R.id.tips_rootview);  | 
            |
| 30 | 
                -        mRlRootView.setOnClickListener(new View.OnClickListener() {
               | 
            |
| 31 | 
                - @Override  | 
            |
| 32 | 
                -            public void onClick(View v) {
               | 
            |
| 33 | 
                - clickClose();  | 
            |
| 34 | 
                - }  | 
            |
| 35 | 
                - });  | 
            |
| 36 | 
                - initView();  | 
            |
| 37 | 
                - }  | 
            |
| 38 | 
                -  | 
            |
| 39 | 
                -    private void initView() {
               | 
            |
| 40 | 
                - TipsView tipsView = new TipsView(this);//将坐标传给自定义view  | 
            |
| 41 | 
                - tipsView.setCircleLocation(mLocs);  | 
            |
| 42 | 
                - RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);  | 
            |
| 43 | 
                - mRlRootView.addView(tipsView, layoutParams);  | 
            |
| 44 | 
                - }  | 
            |
| 45 | 
                -  | 
            |
| 46 | 
                -    public void clickClose() {
               | 
            |
| 47 | 
                - finish();  | 
            |
| 48 | 
                - overridePendingTransition(0, 0);  | 
            |
| 49 | 
                - }  | 
            |
| 50 | 
                -  | 
            |
| 51 | 
                - @Override  | 
            |
| 52 | 
                -    public boolean onKeyDown(int keyCode, KeyEvent event) {
               | 
            |
| 53 | 
                -        if (keyCode == KeyEvent.KEYCODE_BACK) {
               | 
            |
| 54 | 
                - finish();  | 
            |
| 55 | 
                - overridePendingTransition(0, 0);  | 
            |
| 56 | 
                - return true;  | 
            |
| 57 | 
                - }  | 
            |
| 58 | 
                - return super.onKeyDown(keyCode, event);  | 
            |
| 59 | 
                - }  | 
            |
| 60 | 
                -}  | 
            
                @@ -1,79 +0,0 @@  | 
            ||
| 1 | 
                -package ai.pai.client.views;  | 
            |
| 2 | 
                -  | 
            |
| 3 | 
                -import android.content.Context;  | 
            |
| 4 | 
                -import android.graphics.Bitmap;  | 
            |
| 5 | 
                -import android.graphics.BitmapFactory;  | 
            |
| 6 | 
                -import android.graphics.Canvas;  | 
            |
| 7 | 
                -import android.graphics.Color;  | 
            |
| 8 | 
                -import android.graphics.DashPathEffect;  | 
            |
| 9 | 
                -import android.graphics.Paint;  | 
            |
| 10 | 
                -import android.graphics.PathEffect;  | 
            |
| 11 | 
                -import android.graphics.PorterDuff;  | 
            |
| 12 | 
                -import android.graphics.PorterDuffXfermode;  | 
            |
| 13 | 
                -import android.graphics.RectF;  | 
            |
| 14 | 
                -import android.util.AttributeSet;  | 
            |
| 15 | 
                -import android.widget.FrameLayout;  | 
            |
| 16 | 
                -  | 
            |
| 17 | 
                -import com.android.common.utils.DeviceUtils;  | 
            |
| 18 | 
                -import com.sina.weibo.sdk.utils.UIUtils;  | 
            |
| 19 | 
                -  | 
            |
| 20 | 
                -import ai.pai.client.R;  | 
            |
| 21 | 
                -  | 
            |
| 22 | 
                -public class TipsView extends FrameLayout {
               | 
            |
| 23 | 
                - private final Context mContext;  | 
            |
| 24 | 
                - private int[] mCircleLocation;  | 
            |
| 25 | 
                -  | 
            |
| 26 | 
                -    public TipsView(Context context) {
               | 
            |
| 27 | 
                - this(context, null);  | 
            |
| 28 | 
                - }  | 
            |
| 29 | 
                -  | 
            |
| 30 | 
                -    public TipsView(Context context, AttributeSet attrs) {
               | 
            |
| 31 | 
                - this(context, attrs, 0);  | 
            |
| 32 | 
                - }  | 
            |
| 33 | 
                -  | 
            |
| 34 | 
                -    public TipsView(Context context, AttributeSet attrs, int defStyleAttr) {
               | 
            |
| 35 | 
                - super(context, attrs, defStyleAttr);  | 
            |
| 36 | 
                - this.mContext = context;  | 
            |
| 37 | 
                - initView();  | 
            |
| 38 | 
                - }  | 
            |
| 39 | 
                -  | 
            |
| 40 | 
                -    private void initView() {
               | 
            |
| 41 | 
                -        setBackgroundColor(Color.parseColor("#7f000000"));//半透明底色
               | 
            |
| 42 | 
                - }  | 
            |
| 43 | 
                -  | 
            |
| 44 | 
                -    public void setCircleLocation(int[] location) {
               | 
            |
| 45 | 
                - this.mCircleLocation = location;  | 
            |
| 46 | 
                - invalidate(); //重新绘画  | 
            |
| 47 | 
                - }  | 
            |
| 48 | 
                -  | 
            |
| 49 | 
                - @Override  | 
            |
| 50 | 
                -    protected void onDraw(Canvas canvas) {
               | 
            |
| 51 | 
                - super.onDraw(canvas);  | 
            |
| 52 | 
                -        if (mCircleLocation != null) {
               | 
            |
| 53 | 
                - //掏空一个圆形  | 
            |
| 54 | 
                - Paint paintarc = new Paint(Paint.ANTI_ALIAS_FLAG);  | 
            |
| 55 | 
                - PorterDuffXfermode porterDuffXfermode = new PorterDuffXfermode(PorterDuff.Mode.CLEAR);  | 
            |
| 56 | 
                - paintarc.setXfermode(porterDuffXfermode);  | 
            |
| 57 | 
                - paintarc.setAntiAlias(true);  | 
            |
| 58 | 
                - RectF rectF = new RectF(mCircleLocation[0], mCircleLocation[1], mCircleLocation[2], mCircleLocation[3]);  | 
            |
| 59 | 
                - canvas.drawArc(rectF, 0, 360, true, paintarc);  | 
            |
| 60 | 
                - //画虚线  | 
            |
| 61 | 
                - Paint paintdashed = new Paint(Paint.ANTI_ALIAS_FLAG);  | 
            |
| 62 | 
                - paintdashed.setStyle(Paint.Style.STROKE);  | 
            |
| 63 | 
                - paintdashed.setColor(Color.WHITE);  | 
            |
| 64 | 
                - paintdashed.setStrokeWidth(1);  | 
            |
| 65 | 
                -            PathEffect pathEffect = new DashPathEffect(new float[]{10, 10}, 0);
               | 
            |
| 66 | 
                - paintdashed.setPathEffect(pathEffect);  | 
            |
| 67 | 
                - canvas.drawArc(rectF, 0, 360, true, paintdashed);  | 
            |
| 68 | 
                - //画指引图片  | 
            |
| 69 | 
                - Paint paintImage = new Paint(Paint.ANTI_ALIAS_FLAG);  | 
            |
| 70 | 
                - Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.btn_camera_normal);  | 
            |
| 71 | 
                - int width = bitmap.getWidth();  | 
            |
| 72 | 
                - int height = bitmap.getHeight();  | 
            |
| 73 | 
                - int def = DeviceUtils.dip2px(mContext,20);  | 
            |
| 74 | 
                - int left = mCircleLocation[0] - width+def;  | 
            |
| 75 | 
                - int top = mCircleLocation[1] - height;  | 
            |
| 76 | 
                - canvas.drawBitmap(bitmap, left, top, paintImage);  | 
            |
| 77 | 
                - }  | 
            |
| 78 | 
                - }  | 
            |
| 79 | 
                -}  | 
            
                @@ -1,8 +0,0 @@  | 
            ||
| 1 | 
                -<?xml version="1.0" encoding="utf-8"?>  | 
            |
| 2 | 
                -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  | 
            |
| 3 | 
                - android:clickable="true"  | 
            |
| 4 | 
                - android:id="@+id/tips_rootview"  | 
            |
| 5 | 
                - android:layout_width="match_parent"  | 
            |
| 6 | 
                - android:layout_height="match_parent">  | 
            |
| 7 | 
                -  | 
            |
| 8 | 
                -</RelativeLayout>  | 
            
                @@ -6,4 +6,19 @@  | 
            ||
| 6 | 6 | 
                <item name="android:windowDrawsSystemBarBackgrounds">true</item>  | 
            
| 7 | 7 | 
                <item name="android:statusBarColor">@android:color/transparent</item>  | 
            
| 8 | 8 | 
                </style>  | 
            
| 9 | 
                +  | 
            |
| 10 | 
                + <style name="AppThemeTranslucent" parent="@style/Theme.AppCompat.NoActionBar">  | 
            |
| 11 | 
                + <item name="android:windowIsTranslucent">true</item>  | 
            |
| 12 | 
                + <item name="android:windowBackground">@color/transparent</item>  | 
            |
| 13 | 
                + <!--V21 处理沉浸式-->  | 
            |
| 14 | 
                + <item name="android:windowNoTitle">true</item>  | 
            |
| 15 | 
                + <item name="android:windowContentOverlay">@null</item>  | 
            |
| 16 | 
                + <item name="android:windowOverscan">true</item>  | 
            |
| 17 | 
                + <item name="android:windowDrawsSystemBarBackgrounds">true</item>  | 
            |
| 18 | 
                + <item name="android:statusBarColor">#00000000</item>  | 
            |
| 19 | 
                + <item name="android:listDivider">@drawable/recycler_list_divider</item>  | 
            |
| 20 | 
                + <item name="android:colorBackgroundCacheHint">@null</item>  | 
            |
| 21 | 
                + <item name="android:windowAnimationStyle">@android:style/Animation</item>  | 
            |
| 22 | 
                + </style>  | 
            |
| 23 | 
                +  | 
            |
| 9 | 24 | 
                </resources>  | 
            
                @@ -35,10 +35,6 @@  | 
            ||
| 35 | 35 | 
                <item name="android:backgroundDimEnabled">false</item>  | 
            
| 36 | 36 | 
                </style>  | 
            
| 37 | 37 | 
                 | 
            
| 38 | 
                - <style name="ThemeTips" parent="@android:style/Theme.Translucent.NoTitleBar">  | 
            |
| 39 | 
                - <item name="android:windowAnimationStyle">@style/Animation</item>  | 
            |
| 40 | 
                - </style>  | 
            |
| 41 | 
                -  | 
            |
| 42 | 38 | 
                <style name="Animation">  | 
            
| 43 | 39 | 
                <item name="android:activityOpenEnterAnimation">@null</item>  | 
            
| 44 | 40 | 
                <item name="android:activityOpenExitAnimation">@null</item>  | 
            
                @@ -53,4 +49,14 @@  | 
            ||
| 53 | 49 | 
                <item name="android:taskToBackEnterAnimation">@null</item>  | 
            
| 54 | 50 | 
                <item name="android:taskToBackExitAnimation">@null</item>  | 
            
| 55 | 51 | 
                </style>  | 
            
| 52 | 
                +  | 
            |
| 53 | 
                + <style name="AppThemeTranslucent" parent="@style/Theme.AppCompat.NoActionBar">  | 
            |
| 54 | 
                + <item name="android:windowIsTranslucent">true</item>  | 
            |
| 55 | 
                + <item name="android:windowBackground">@color/transparent</item>  | 
            |
| 56 | 
                + <item name="selectableItemBackground">@null</item>  | 
            |
| 57 | 
                + <item name="android:listDivider">@drawable/recycler_list_divider</item>  | 
            |
| 58 | 
                + <item name="android:colorBackgroundCacheHint">@null</item>  | 
            |
| 59 | 
                + <item name="android:windowAnimationStyle">@android:style/Animation</item>  | 
            |
| 60 | 
                + </style>  | 
            |
| 61 | 
                +  | 
            |
| 56 | 62 | 
                </resources>  | 
            
                @@ -22,7 +22,7 @@ org.gradle.parallel=true  | 
            ||
| 22 | 22 | 
                android.useDeprecatedNdk=true  | 
            
| 23 | 23 | 
                org.gradle.configureondemand=true  | 
            
| 24 | 24 | 
                 | 
            
| 25 | 
                -COMPILE_SDK_VERSION=24  | 
            |
| 25 | 
                +COMPILE_SDK_VERSION=23  | 
            |
| 26 | 26 | 
                BUILD_TOOLS_VERSION=25.0.2  | 
            
| 27 | 27 | 
                MIN_SDK_VERSION=15  | 
            
| 28 | 28 | 
                TARGET_SDK_VERSION=21  | 
            
                @@ -14,7 +14,7 @@ android {
               | 
            ||
| 14 | 14 | 
                 | 
            
| 15 | 15 | 
                 dependencies {
               | 
            
| 16 | 16 | 
                compile fileTree(include: ['*.jar'], dir: 'libs')  | 
            
| 17 | 
                - compile 'com.android.support:design:latest.integration'  | 
            |
| 18 | 
                - compile 'com.android.support:support-v4:latest.integration'  | 
            |
| 19 | 
                - compile 'com.android.support:recyclerview-v7:latest.integration'  | 
            |
| 17 | 
                + compile 'com.android.support:design:24.2.1'  | 
            |
| 18 | 
                + compile 'com.android.support:support-v4:24.2.1'  | 
            |
| 19 | 
                + compile 'com.android.support:recyclerview-v7:24.2.1'  | 
            |
| 20 | 20 | 
                }  |